Po Lu [Wed, 8 Mar 2023 00:29:31 +0000 (08:29 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Alan Mackenzie [Tue, 7 Mar 2023 17:38:20 +0000 (17:38 +0000)]
* test/lisp/subr-tests.el (subr--safe-copy-tree): New tests for safe-copy-tree
Alan Mackenzie [Tue, 7 Mar 2023 15:26:20 +0000 (15:26 +0000)]
safe-copy-tree. Correct mistakes from earlier patch.
* lisp/emacs-lisp/bytecomp.el (compile-defun): Remove unintended change.
* lisp/subr.el (safe-copy-tree--seen): Correct grammatical error in doc
string.
(safe-copy-tree): Delete hash table at end of function.
* doc/lispref/lists.texi (Building Lists): Add an "@end defun" line.
Po Lu [Tue, 7 Mar 2023 12:18:15 +0000 (20:18 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Tue, 7 Mar 2023 12:18:02 +0000 (20:18 +0800)]
Save build timestamps in Android builds
* java/Makefile.in (install_temp/assets/build_info): New
rule.:(emacs.apk-in): Depend on that file.
* lisp/version.el (android-read-build-system)
(android-read-build-time): New functions.
(emacs-build-system, emacs-build-time): Use those functions on
Android, as dumping is done after installation on Android.
* src/fileio.c (Finsert_file_contents):
* src/window.c (replace_buffer_in_windows): Don't call functions
if they are not defined, which can happen during loadup.
Po Lu [Tue, 7 Mar 2023 08:49:45 +0000 (16:49 +0800)]
Update Android port
* java/org/gnu/emacs/EmacsWindow.java (onSomeKindOfMotionEvent):
Dismiss splurious LeaveNotify events from button presses.
* src/android.c (android_change_window_attributes)
(android_change_gc, android_set_clip_rectangles)
(android_reparent_window, android_clear_window, android_map_window)
(android_unmap_window, android_resize_window, android_move_window)
(android_swap_buffers, android_fill_rectangle, android_copy_area)
(android_fill_polygon, android_draw_rectangle, android_draw_point)
(android_draw_line, android_clear_area, android_bell)
(android_set_input_focus, android_raise_window)
(android_lower_window, android_set_dont_focus_on_map)
(android_set_dont_accept_focus, android_get_keysym_name)
(android_toggle_on_screen_keyboard, android_restart_emacs)
(android_display_toast, android_update_ic, android_reset_ic)
(android_set_fullscreen): Optimize by specifying the class
explicitly when calling a method.
Alan Mackenzie [Tue, 7 Mar 2023 08:00:25 +0000 (08:00 +0000)]
eval-and-compile: Strip symbol positions for eval but not for compile.
This fixes bug #61962.
* lisp/subr.el (safe-copy-tree): New function.
* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment): Amend
the entry for eval-and-compile to use safe-copy-tree and
byte-run-strip-symbol-positions for the eval part.
* doc/lispref/lists.texi (Building Lists): Document safe-copy-tree.
* etc/NEWS: Note the new function safe-copy-tree.
Po Lu [Tue, 7 Mar 2023 07:25:28 +0000 (15:25 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Tue, 7 Mar 2023 06:20:50 +0000 (14:20 +0800)]
Update Android port
* src/lread.c (lread_fd, file_tell, infile, skip_dyn_bytes)
(skip_dyn_eof, readbyte_from_stdio, safe_to_load_version)
(close_infile_unwind, close_file_unwind_android_fd): New
function.
(Fload, Flocate_file_internal, openp): New argument PLATFORM.
All callers changed.
(skip_lazy_string): Add optimized versions of various functions
for accessing Android assets.
Stefan Kangas [Tue, 7 Mar 2023 05:30:10 +0000 (06:30 +0100)]
Merge from origin/emacs-29
bd07cec8442 Fix regression in Fido mode (bug#62015)
0e3c7ac13da * Fix `emacs-lisp-native-compile-and-load' for (bug#61917)
4a7e657389a * lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (...
8a8a994cfab Revert "Fix configuration of webp libraries"
de4277af009 Fix configuration of webp libraries
Po Lu [Tue, 7 Mar 2023 00:43:36 +0000 (08:43 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
João Távora [Mon, 6 Mar 2023 22:28:47 +0000 (22:28 +0000)]
Fix regression in Fido mode (bug#62015)
To understand the regression consider this recipe where the 'fo'
pattern is typed by the user in the last step.
emacs -Q
C-x b foo RET
C-x b afoo RET
C-x b *scratch* RET
M-x fido-mode RET
C-x b fo
This used to offer both 'foo' and 'afoo' as candidates but now only
offered 'foo'. This is because the pattern 'fo' matches 'foo', but
not 'afoo' with 'basic' completion style.
Fido mode, however, prioritizes 'flex' completion style, and that is
not happening here as it used to.
This was introduced in this commit
commit
bf81df86e52fdc995bec8d9646f84d114cb896d1
Author: João Távora <joaotavora@gmail.com>
Date: Wed Dec 7 10:43:59 2022 +0000
Don't override completion-category-defaults in fido-mode
I took away the nil setting of 'completion-category-defaults; in Fido
mode's minibuffer. It seemed generally the correct thing to do, and
was done mainly because Eglot added its style preferences to that
variable instead of completion-category-overrides directly, which is a
nono. So, to be able use the Fido UI with Eglot successfully,
'completion-category-defaults' should stay untouched. Or so I
thought.
However, I failed to notice that, for most categories, the default
value of 'completion-category-defaults' prioritizes the 'basic'
completion style.
For example, in the 'buffer' category, the default value has the
styles list '(basic substring)'. This means that if a pattern matches
accoring to the 'basic' style, 'substring' will not be tried. And
neither will 'completion-styles' which in Fido mode's case happens to
be 'flex'.
The solution in this commit is to craft a value for completion
category defaults that is just like the default one, but prioritizes
'flex' completion for every category.
* lisp/icomplete.el (icomplete--fido-ccd): New helper.
(icomplete--fido-mode-setup): Use it.
Andrea Corallo [Mon, 6 Mar 2023 16:27:32 +0000 (17:27 +0100)]
* Fix `emacs-lisp-native-compile-and-load' for (bug#61917)
* lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load):
Don't load if no compialtion happened.
Andrea Corallo [Mon, 6 Mar 2023 15:51:07 +0000 (16:51 +0100)]
* lisp/emacs-lisp/comp.el (comp-prettyformat-insn): Fix (bug#61917)
Eli Zaretskii [Mon, 6 Mar 2023 15:31:57 +0000 (17:31 +0200)]
Revert "Fix configuration of webp libraries"
This reverts commit
de4277af009115ceba7fe920163c05c608ea9524.
It breaks WebP support at least on my system.
There's no reason to require libwebpdecoder library to be
installed, since we don't use the functions from it, at least
not in libwebp 1.2.1.
Vibhav Pant [Wed, 1 Mar 2023 09:34:34 +0000 (15:04 +0530)]
Don't modify interactive closures destructively (Bug#60974).
* lisp/emacs-lisp/cconv.el (cconv-convert): When form is an
interactive lambda form, don't destructively modify it, as it might be
a constant literal. Instead, create a new list with the relevant
place(s) changed.
* test/lisp/emacs-lisp/cconv-tests.el
(cconv-tests-interactive-form-modify-bug60974): New test.
Po Lu [Mon, 6 Mar 2023 13:42:29 +0000 (21:42 +0800)]
Fix configuration of webp libraries
* configure.ac: Link with libwebpdecoder along with
libwebpdemux. (bug#61988)
Michael Albinus [Mon, 6 Mar 2023 12:35:49 +0000 (13:35 +0100)]
Add tramp-use-ssh-controlmaster-options value `suppress'.
* doc/misc/tramp.texi (Ssh setup):
Explain tramp-use-ssh-controlmaster-options value `suppress'.
(Remote processes): Add reference to "Using ssh connection sharing".
* etc/NEWS: Extend 'tramp-use-ssh-controlmaster-options' values.
;; Fix typos.
* lisp/net/tramp-sh.el (tramp-use-ssh-controlmaster-options):
Allow new value `suppress'.
(tramp-ssh-option-exists-p): New defun.
(tramp-ssh-controlmaster-options): Implement `suppress' actions.
Po Lu [Mon, 6 Mar 2023 08:06:37 +0000 (16:06 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Mon, 6 Mar 2023 07:30:29 +0000 (15:30 +0800)]
Update Android port
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
function requestSelectionUpdate.
* java/org/gnu/emacs/EmacsView.java (onCreateInputConnection):
Call it instead of losing if getting the current selection
fails.
* src/android-asset.h (AAsset_seek): Define stub.
* src/android.c (android_open): Take mode_t.
(android_open_asset, android_close_asset, android_asset_read_quit)
(android_asset_read, android_asset_lseek, android_asset_fstat):
New functions.
* src/android.h (struct android_fd_or_asset): Update prototypes.
* src/androidgui.h (enum android_ime_operation): Add new
operation to update the selection position.
* src/androidterm.c (android_handle_ime_event): Handle new
operation.
(requestSelectionUpdate): New function.
* src/fileio.c (close_file_unwind_emacs_fd): New function.
(Fcopy_file, union read_non_regular, read_non_regular)
(Finsert_file_contents): Use optimized codepath to insert
Android asset files.
* src/frame.h (enum text_conversion_operation): New operation.
* src/textconv.c (really_request_point_update)
(handle_pending_conversion_events_1, request_point_update): New
functions.
* src/textconv.h: Update prototypes.
Stefan Kangas [Mon, 6 Mar 2023 05:30:13 +0000 (06:30 +0100)]
Merge from origin/emacs-29
1c67e4f895f Fix c-ts-mode indentation
d724d7d6785 Fix c-ts-mode indentation
7292b24c801 Fix c-ts-mode indentation
75cdc1afbe5 ; Change font-lock-variable-name-face to font-lock-variab...
b1b3af5b90b Update to Org 9.6.1-40-g3d817c
80e1037df44 Add string-interpolation feature to bash-ts-mode
5b8e0b31548 Fix tramp-sh-handle-insert-directory
2258ed01f42 ; Minor fix of last change
9c18af0cfaf * Warn when certain primitives are redefined (bug#61880)
5af695c7479 ; * lib-src/etags.c (print_help): Fix indentation.
Po Lu [Mon, 6 Mar 2023 03:46:19 +0000 (11:46 +0800)]
* src/conf_post.h: Avoid macro redeclaration.
Po Lu [Mon, 6 Mar 2023 03:25:51 +0000 (11:25 +0800)]
Update Android port
* java/org/gnu/emacs/EmacsService.java (sync): Delete function.
* java/org/gnu/emacs/EmacsView.java (handleDirtyBitmap): Erase
with window background.
(onDetachedFromWindow): Only recycle bitmap if non-NULL.
* java/org/gnu/emacs/EmacsWindow.java (background): New field.
(changeWindowBackground): Set it.
* src/android.c (struct android_emacs_service): Remove `sync'.
(android_init_emacs_service): Likewise.
(android_sync): Delete function.
* src/androidfns.c (android_create_tip_frame): Set frame
background color correctly.
(Fx_show_tip): Make the tip frame visible.
* src/androidgui.h: Update prototypes.
* src/androidterm.c (handle_one_android_event): Handle tooltip
movement correctly.
Yuan Fu [Sun, 5 Mar 2023 23:22:36 +0000 (15:22 -0800)]
Fix c-ts-mode indentation
Mentioned in bug#61893.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Handle
"#elif" and "#else".
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: Add an
"#elif" to the test.
Yuan Fu [Sun, 5 Mar 2023 23:07:58 +0000 (15:07 -0800)]
Fix c-ts-mode indentation
Mentioned in bug#61893, although not the subject of it.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling): Fix the child index for preproc_else
and preproc_elif case.
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts:
New test.
Yuan Fu [Sun, 5 Mar 2023 23:01:54 +0000 (15:01 -0800)]
Fix c-ts-mode indentation
Not the subject of it, but mentioned in bug#61893.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling): Skip
the sibling if it doesn't start on it's own line.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New test.
Yuan Fu [Sun, 5 Mar 2023 22:42:28 +0000 (14:42 -0800)]
; Change font-lock-variable-name-face to font-lock-variable-use-face
* lisp/progmodes/sh-script.el:
(sh-mode--treesit-settings): Change font-lock-variable-name-face to
font-lock-variable-use-face.
Kyle Meyer [Sun, 5 Mar 2023 22:22:06 +0000 (17:22 -0500)]
Update to Org 9.6.1-40-g3d817c
Yuan Fu [Sun, 5 Mar 2023 22:16:58 +0000 (14:16 -0800)]
Add string-interpolation feature to bash-ts-mode
* lisp/progmodes/sh-script.el:
(bash-ts-mode): Add string-interpolation feature.
(sh-mode--treesit-settings): Add rule for string-interpolation feature.
Michael Albinus [Sun, 5 Mar 2023 16:31:26 +0000 (17:31 +0100)]
Fix tramp-sh-handle-insert-directory
* lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Remove also
//DIRED-OPTIONS// line when there is no //DIRED// line.
Po Lu [Sun, 5 Mar 2023 11:59:06 +0000 (19:59 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sun, 5 Mar 2023 11:58:28 +0000 (19:58 +0800)]
Update Android port
* java/org/gnu/emacs/EmacsActivity.java (onCreate):
* java/org/gnu/emacs/EmacsContextMenu.java:
* java/org/gnu/emacs/EmacsDocumentsProvider.java (getMimeType):
* java/org/gnu/emacs/EmacsDrawLine.java (perform):
* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
* java/org/gnu/emacs/EmacsFillPolygon.java:
* java/org/gnu/emacs/EmacsFontDriver.java:
* java/org/gnu/emacs/EmacsHandleObject.java:
* java/org/gnu/emacs/EmacsInputConnection.java:
* java/org/gnu/emacs/EmacsMultitaskActivity.java
(EmacsMultitaskActivity):
* java/org/gnu/emacs/EmacsNative.java:
* java/org/gnu/emacs/EmacsNoninteractive.java
(EmacsNoninteractive, main):
* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
(startEmacsClient):
* java/org/gnu/emacs/EmacsSdk7FontDriver.java:
* java/org/gnu/emacs/EmacsSdk8Clipboard.java:
* java/org/gnu/emacs/EmacsService.java (EmacsService, onCreate):
* java/org/gnu/emacs/EmacsView.java (EmacsView, onLayout):
* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow):
* java/org/gnu/emacs/EmacsWindowAttachmentManager.java
(EmacsWindowAttachmentManager): Remove redundant includes.
Reorganize some functions around, remove duplicate `getLibDir'
functions, and remove unused local variables.
Eli Zaretskii [Sun, 5 Mar 2023 10:24:39 +0000 (12:24 +0200)]
; Minor fix of last change
* lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Fix
wording. (Bug#61880)
Andrea Corallo [Sun, 5 Mar 2023 09:46:18 +0000 (10:46 +0100)]
* Warn when certain primitives are redefined (bug#61880)
* lisp/emacs-lisp/comp.el (comp-warn-primitives): New constant.
(comp-subr-trampoline-install): Warn when a sensitive primitive is
being redefined.
Po Lu [Sun, 5 Mar 2023 07:55:24 +0000 (15:55 +0800)]
Update Android port
* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Don't
set the style here.
* java/res/values-v11/style.xml:
* java/res/values-v14/style.xml:
* java/res/values-v29/style.xml:
* java/res/values/style.xml: Define styles for the emacsclient
wrapper.
* src/keyboard.c (read_key_sequence): Don't disable text
conversion if use_mouse_menu or if a menu bar prefix key is
being displayed.
Po Lu [Sun, 5 Mar 2023 06:53:12 +0000 (14:53 +0800)]
Update Android port
* etc/PROBLEMS: Document problem with default monospace font.
* src/fileio.c (check_mutable_filename): Check /content as well.
(Fcopy_file, Fdelete_directory_internal, Fdelete_file)
(Frename_file, Fadd_name_to_file, Fmake_symbolic_link)
(Fset_file_modes, Fset_file_times, Ffile_newer_than_file_p)
(write_region): Adjust accordingly.
(Fset_visited_file_modtime): Remove unnecessary restriction.
* src/filelock.c (make_lock_file_name): Don't interlock files
under /assets and /content.
* src/inotify.c (Finotify_add_watch): Fix typo.
Eli Zaretskii [Sun, 5 Mar 2023 06:43:03 +0000 (08:43 +0200)]
; * lib-src/etags.c (print_help): Fix indentation.
Stefan Kangas [Sun, 5 Mar 2023 05:30:15 +0000 (06:30 +0100)]
Merge from origin/emacs-29
836044f329a Fix c-ts-mode preproc directive indentation
64980a59b65 ; * lisp/files.el (hack-local-variables): Fix typo in the...
a7cd125d490 More robustly unspoof HOME in Eglot tests (bug#61637)
6c66dbd02c7 Turn on Eglot inlay hints by default
246f5b541c5 Update ts modes missed in
4c16fd3a512 to use column-0
0bfba49ca7c Robustify Eglot for "transient" projects
ea5fd375bb2 Fix documentation of 'normal-mode' in buffers that don't ...
4c16fd3a512 Change tree-sitter indent anchor 'point-min' to 'column-0'
f47b3930158 Fix go-ts-mode multi-line string indentation (bug#61923)
e0bf2da3db6 ; More accurate doc strings for 'window-at' and 'window-a...
Po Lu [Sun, 5 Mar 2023 03:04:06 +0000 (11:04 +0800)]
Fix cross compilation of cross/lib in some cases
* cross/Makefile.in: (config.status): Depend on
top_builddir/config.status instead.
Po Lu [Sun, 5 Mar 2023 02:57:06 +0000 (10:57 +0800)]
; * configure.ac: Fix another typo.
Po Lu [Sun, 5 Mar 2023 02:42:41 +0000 (10:42 +0800)]
; * cross/Makefile.in (builddir): Define.
Po Lu [Sun, 5 Mar 2023 02:22:49 +0000 (10:22 +0800)]
; * cross/README: Update.
Po Lu [Sun, 5 Mar 2023 02:22:33 +0000 (10:22 +0800)]
Remove redundant gnulib files
* cross/lib: Delete. Make configure generate it instead.
Po Lu [Sun, 5 Mar 2023 02:18:28 +0000 (10:18 +0800)]
Remove redundant second copy of gnulib
* .gitignore: Simplify cross/lib rule.
* admin/merge-gnulib (avoided_flags): Stop copying to cross/lib.
* configure.ac: Link gnulib source and header files to
cross/lib.
* cross/Makefile.in (LIB_SRCDIR): Make relative to builddir.
(maintainer-clean): Merge with distclean. Remove links created
by configure.
Po Lu [Sun, 5 Mar 2023 00:09:03 +0000 (08:09 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Yuan Fu [Sat, 4 Mar 2023 22:39:44 +0000 (14:39 -0800)]
Fix c-ts-mode preproc directive indentation
Mentioned in bug#61893, although not the subject of that report. This
change fixes indentation for nested directives. For example, when the
directive involves elif and the like, the elif is nested in the if
directive, so simply using grand-parent and great-grand-parent for
anchor is insufficient, because the nesting can grow arbitrarily.
The test added also covers the last preproc fix.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--standalone-parent-skip-preproc): New function.
(c-ts-mode--indent-styles): New rules.
* test/lisp/progmodes/c-ts-mode-resources/indent-preproc.erts: New test.
Eli Zaretskii [Sat, 4 Mar 2023 20:03:14 +0000 (22:03 +0200)]
; * lisp/files.el (hack-local-variables): Fix typo in the doc string.
João Távora [Sat, 4 Mar 2023 19:14:48 +0000 (19:14 +0000)]
More robustly unspoof HOME in Eglot tests (bug#61637)
A fair number of LSP servers allow user-local installations instead of
system wide installations. Emacs's technique of spoofing the HOME env
var to some non-existent or non-home directory during 'make check'
breaks these tests. That's because the executables are still found by
executable-find, but their invocation will rarely be successful as
HOME isn't what they expect it to be.
Eglot tests already had a technique for dealing with this,
"unspoffing" HOME just for the invocations of LSP server but it
stopped working a while back. So make it more robust.
Eventually, we'll want to decide wether these local servers should be
considered in 'make check' runs at all, or whether there is a way to
use them with a spoofed HOME.
* test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
More robustly unspoof HOME.
João Távora [Sat, 4 Mar 2023 15:05:15 +0000 (15:05 +0000)]
Turn on Eglot inlay hints by default
This is like any other server-provided feature, and may be turned off
client-side by setting eglot-ignored-server-capabilities like
(add-to-list 'eglot-ignored-server-capabilities :inlayHintProvider)
* lisp/progmodes/eglot.el (eglot--maybe-activate-editing-mode):
Activate eglot-inlay-hints-mode.
(eglot-inlay-hints-mode): Instead of warning about missing
:inlayHintProvider, turn off eglot-inlay-hints-mode.
Dmitry Gutov [Sat, 4 Mar 2023 17:45:39 +0000 (19:45 +0200)]
Update ts modes missed in
4c16fd3a512 to use column-0
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--indent-rules):
* lisp/progmodes/go-ts-mode.el (go-ts-mode--indent-rules):
Change point-min anchor to column-0.
Eli Zaretskii [Sat, 4 Mar 2023 15:01:16 +0000 (17:01 +0200)]
Unbreak the unexec build
* src/alloc.c (BLOCK_ALIGN) [HAVE_UNEXEC]: Reset back to 1024.
(Bug#61960)
Po Lu [Sat, 4 Mar 2023 13:05:02 +0000 (21:05 +0800)]
Fix x86_64 builds of libjpeg on Android
* cross/ndk-build/ndk-build-shared-library.mk:
* cross/ndk-build/ndk-build-static-library.mk: Specify right ELF
format for 64 bit executables.
Po Lu [Sat, 4 Mar 2023 13:01:28 +0000 (21:01 +0800)]
Fix calls to nasm in cross/ndk-build
* cross/ndk-build/ndk-build-shared-library.mk:
* cross/ndk-build/ndk-build-static-library.mk: Ensure nasm
generates ELF objects.
João Távora [Sat, 4 Mar 2023 12:49:00 +0000 (12:49 +0000)]
Robustify Eglot for "transient" projects
When Eglot needs to synthesize a "transient" project for
default-directory sometimes the value of that variable is set to an
unexpanded value, sometimes not. This can cause simple invocations
like.
Emacs -Q ~/path/to-some-python-file.py -f eglot
to fail, because eglot--current-server will be looking for a project
in the registry called
(transient . "~/path")
where in reality it is stored there as
(transient . "/home/someuser/path")
The fix is to always expand default-directory in eglot--current-project.
* lisp/progmodes/eglot.el (eglot--current-project): Use
expand-file-name.
Po Lu [Sat, 4 Mar 2023 12:22:39 +0000 (20:22 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sat, 4 Mar 2023 11:54:21 +0000 (19:54 +0800)]
Fix out of bound write after poly of single pixel span
* src/sfnt.c (sfnt_fill_span): Specifically handle spans that
span a single pixel by computing the coverage in the center.
Konstantin Kharlamov [Thu, 16 Feb 2023 15:07:55 +0000 (18:07 +0300)]
bug#61489: Increase BLOCK_ALIGN from 1024 to 32768
Originally discovered by Tyler Dodge in his article "Significant Garbage
Collection Improvement For Emacs".
While testing this change on Archlinux system with Intel i5-7200U CPU,
average time of garbage collection gets reduced by ≈25%. Other users
report improvements up to 50%. While monitoring PSS of emacs with and
without customizations loaded before and after the patch, no
statistically significant differences were discovered. So overall, this
change is a win.
* src/alloc.c (BLOCK_ALIGN): increase from 1024 to 32768.
Eli Zaretskii [Sat, 4 Mar 2023 10:16:51 +0000 (12:16 +0200)]
Fix documentation of 'normal-mode' in buffers that don't visit files
* lisp/files.el (normal-mode):
* lisp/subr.el (run-mode-hooks):
* doc/emacs/modes.texi (Choosing Modes): Mention the caveat with
'normal-mode' in buffers not visiting files. (Bug#61925)
* lisp/files.el (hack-local-variables): Doc fix.
Yuan Fu [Sat, 4 Mar 2023 09:09:00 +0000 (01:09 -0800)]
Change tree-sitter indent anchor 'point-min' to 'column-0'
Point-min isn't necessarily at column 0, using line-beginning-position
is better. column-0 is also more intuitive.
* doc/lispref/modes.texi (Parser-based Indentation): Update manual.
* lisp/progmodes/c-ts-mode.el (c-ts-mode--indent-styles):
* lisp/progmodes/java-ts-mode.el (java-ts-mode--indent-rules):
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--indent-rules):
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-mode--indent-rules): Change point-min to column-0.
* lisp/treesit.el (treesit-simple-indent-presets): Change point-min to
column-0.
Yuan Fu [Sat, 4 Mar 2023 08:37:03 +0000 (00:37 -0800)]
Fix go-ts-mode multi-line string indentation (bug#61923)
* lisp/progmodes/go-ts-mode.el:
(go-ts-mode--indent-rules): Add indent rule for multi-line sting.
Eli Zaretskii [Sat, 4 Mar 2023 08:43:25 +0000 (10:43 +0200)]
; More accurate doc strings for 'window-at' and 'window-at-x-y'.
* lisp/window.el (window-at-x-y):
* src/window.c (Fwindow_at): Doc fix. (Bug#61948)
Po Lu [Sat, 4 Mar 2023 07:55:09 +0000 (15:55 +0800)]
Improve context menus on old versions of Android
* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity): New
field `lastClosedMenu'.
(onContextMenuClosed): Don't send event if a menu is closed
twice in a row. Also, clear wasSubmenuSelected immediately.
* java/org/gnu/emacs/EmacsContextMenu.java: Display submenus
manually in Android 6.0 and earlier.
* java/org/gnu/emacs/EmacsView.java (onCreateContextMenu)
(popupMenu): Adjust accordingly.
Po Lu [Sat, 4 Mar 2023 05:38:00 +0000 (13:38 +0800)]
Port to broken Android NDK version
* configure.ac: Check for __ctype_get_mb_cur_max.
Then see if MB_CUR_MAX is defined to it, and define
REPLACEMENT_MB_CUR_MAX if so and it does not link.
* java/INSTALL: Update documentation.
* src/conf_post.h (MB_CUR_MAX): Define replacement if
necessary.
Stefan Kangas [Sat, 4 Mar 2023 05:30:12 +0000 (06:30 +0100)]
Merge from origin/emacs-29
bd5115e1347 Remove Eglot activation check from find-file-hook
adc04ad5247 * src/intervals.c (set_intervals_multibyte_1): Fix bug#61887
b3e930d328e Revert inadvertent change to lisp/icomplete.el in previou...
da8e4b6fe43 Revert previous change in go-ts-mode.el
7548446194a Release ERC 5.5
585faf4c173 ; More doc improvements for OClosures
2840895c1ae Don't create GUI frames in batch sessions
452b5ed1030 ; Fix wrong error name in erc-server-908 doc string.
1e9484f2fd1 ; * etc/ERC-NEWS: Mention more deprecations.
119b3a4dba1 Minor copyedits of documentation of OClosures
3a651773d29 Eglot: pay better attention to hints' paddingLeft/Right (...
# Conflicts:
# etc/NEWS
Po Lu [Sat, 4 Mar 2023 03:47:32 +0000 (11:47 +0800)]
; * m4/ndk-build.m4 (ndk_INIT): Fix typo.
Po Lu [Sat, 4 Mar 2023 03:25:09 +0000 (11:25 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Sat, 4 Mar 2023 03:19:25 +0000 (11:19 +0800)]
Improve support for building Android C++ dependencies
* configure.ac: Call ndk_LATE after gl_EARLY.
* cross/ndk-build/Makefile.in (NDK_BUILD_CXX): New variable.
* cross/ndk-build/ndk-build-shared-library.mk:
* cross/ndk-build/ndk-build-static-library.mk: Use it.
* java/INSTALL: Describe how to build C++ dependencies.
* m4/ndk-build.m4 (ndk_LATE): New macro.
(ndk_INIT): Try to find a suitable C++ compiler.
(ndk_CHECK_MODULES): Make sure the C++ compiler works before
allowing C++ dependencies.
Sean Whitton [Sat, 4 Mar 2023 02:17:40 +0000 (19:17 -0700)]
* lisp/icomplete.el (icomplete-in-buffer): Make into a defcustom.
Po Lu [Sat, 4 Mar 2023 00:45:11 +0000 (08:45 +0800)]
Fix cross-compilation of C++ code with old NDK versions
* cross/ndk-build/Makefile.in (NDK_BUILD_CFLAGS_CXX): New variable.
* cross/ndk-build/ndk-build-shared-library.mk
($(call objname,$(LOCAL_MODULE),$(basename $(1)))):
* cross/ndk-build/ndk-build-static-library.mk
($(call objname,$(LOCAL_MODULE),$(basename $(1)))): Use it to build
C++ code.
Dmitry Gutov [Sat, 4 Mar 2023 00:37:14 +0000 (02:37 +0200)]
Redirect eldoc messages to the mode-line when in edebug-mode
* lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message): Redirect
eldoc messages to the mode-line when in edebug-mode (bug#56459).
(eldoc-minibuffer--cleanup): New function, used in above.
Dmitry Gutov [Sat, 4 Mar 2023 00:27:35 +0000 (02:27 +0200)]
Revert "Revert "Don't disable eldoc when doing edebug""
This reverts commit
99df815c153265706edc839b7467fb3ae3b6e1b1.
João Távora [Sat, 4 Mar 2023 00:09:32 +0000 (00:09 +0000)]
Remove Eglot activation check from find-file-hook
Adding eglot--maybe-activate-editing-mode to find-file-hook isn't
really necessary, since it is already in
'after-change-major-mode-hook', and that also runs every time we find
a file.
This reduces the number of project.el logic that runs every time the
user visits a file.
* lisp/progmodes/eglot.el (find-file-hook): No need to add
eglot--maybe-activate-editing-mode here.
Stefan Monnier [Sat, 4 Mar 2023 00:13:03 +0000 (19:13 -0500)]
* src/intervals.c (set_intervals_multibyte_1): Fix bug#61887
When `total_length` is 0 there should be no subtree at all, but
`delete_interval` only deletes one interval, so make sure we don't end
up with some stale child of `i`.
João Távora [Fri, 3 Mar 2023 23:36:26 +0000 (23:36 +0000)]
Revert inadvertent change to lisp/icomplete.el in previous commit
The change
commit
3a651773d29afb48ac4229cd19e532bd57a4ee2d
Author: João Távora <joaotavora@gmail.com>
Date: Fri Mar 3 13:13:35 2023 +0000
Eglot: pay better attention to hints' paddingLeft/Right (bug#61924)
Inadvertently added a line to this file, which shouldn't (yet) bet
added.
* lisp/icomplete.el (icomplete--vertical-minibuffer-setup): Remove
truncate-lines.
Yuan Fu [Fri, 3 Mar 2023 21:59:54 +0000 (13:59 -0800)]
Revert previous change in go-ts-mode.el
Reverts
59365f928565f1be551b1697b9246b00cb87a9b7 and
56cd810b9d1a4d537bee5a2fd954d6e0d346631a.
Reverting because the use of treesit-ready-p is very much intentional.
* lisp/progmodes/go-ts-mode.el (treesit-ready-p): Revert change.
F. Jason Park [Tue, 14 Feb 2023 07:27:50 +0000 (23:27 -0800)]
Release ERC 5.5
* doc/misc/erc.texi: Update ERCVER to 5.5.
* lisp/erc/erc.el: Increment main version header to 5.5. Update
Compat version in package-requires header to 29.1.3.4. Update
`customize-package-emacs-version-alist' entry by mapping ERC 5.5 to
Emacs 29.1.
(erc-version): Update value to 5.5.
Eli Zaretskii [Fri, 3 Mar 2023 19:44:54 +0000 (21:44 +0200)]
; More doc improvements for OClosures
* doc/lispref/functions.texi (OClosures):
* doc/lispref/commands.texi (Using Interactive):
* etc/NEWS: Some more docs improvements for OClosures.
Jim Porter [Tue, 28 Feb 2023 19:35:21 +0000 (11:35 -0800)]
Don't create GUI frames in batch sessions
This resolves an issue with running test/lisp/server-tests.el when
'DISPLAY' is set: the tests would start the Emacs server in a batch
session, and then request a new GUI frame. However, that caused the
tests to terminate with SIGIO, since a batch Emacs doesn't set a SIGIO
handler.
Ref: <https://lists.gnu.org/archive/html/emacs-devel/2023-02/msg00879.html>
* lisp/frame.el (make-frame): Always create a terminal frame in batch
sessions.
Po Lu [Fri, 3 Mar 2023 13:58:48 +0000 (21:58 +0800)]
Minor fixes to configury
* configure.ac (ANDROID_SDK_8_OR_EARLIER): Pass through
`--with-ndk-cxx-shared'.
* m4/ndk-build.m4: Fix quoting of $CC.
F. Jason Park [Fri, 3 Mar 2023 07:37:06 +0000 (23:37 -0800)]
; Fix wrong error name in erc-server-908 doc string.
* lisp/erc/erc-sasl.el (erc-server-908): Correct well-known name for
908 numeric in doc string.
(erc--register-connection): Fold overlong line.
F. Jason Park [Fri, 3 Mar 2023 07:33:28 +0000 (23:33 -0800)]
; * etc/ERC-NEWS: Mention more deprecations.
Eli Zaretskii [Fri, 3 Mar 2023 13:23:22 +0000 (15:23 +0200)]
Minor copyedits of documentation of OClosures
* doc/lispref/functions.texi (OClosures): Improve wording,
indexing, and markup; add details.
Po Lu [Fri, 3 Mar 2023 13:22:00 +0000 (21:22 +0800)]
Fix out-of-tree builds with native dependencies
* cross/ndk-build/ndk-build-shared-library.mk:
* cross/ndk-build/ndk-build-static-library.mk: Include
ndk-resolve.mk in srcdir.
João Távora [Fri, 3 Mar 2023 13:13:35 +0000 (13:13 +0000)]
Eglot: pay better attention to hints' paddingLeft/Right (bug#61924)
* lisp/progmodes/eglot.el (eglot--update-hints-1): Consider
:json-false, which is a non-nil value.
Po Lu [Fri, 3 Mar 2023 13:14:08 +0000 (21:14 +0800)]
; * cross/ndk-build/README: Update accordingly.
Po Lu [Fri, 3 Mar 2023 13:13:58 +0000 (21:13 +0800)]
Improve ndk-build implementation
* build-aux/ndk-build-helper.mk: Define in terms of BUILD_AUXDIR.
* m4/ndk-build.m4 (ndk_INIT): Find right build-aux directory.
Remove uses of unportable shell constructs.
Mattias Engdegård [Fri, 3 Mar 2023 10:32:34 +0000 (11:32 +0100)]
Remove ineffective uses of condition-case
* lisp/gnus/message.el (message-setup-1):
* lisp/progmodes/cc-engine.el (c-forward-single-comment):
* lisp/progmodes/ruby-mode.el (ruby-add-log-current-method):
Eliminate uses of condition-case without handlers. These seem to have
been there for quite a long time. This change does not affect the
behaviour of the code and makes some warnings go away.
Po Lu [Fri, 3 Mar 2023 08:00:27 +0000 (16:00 +0800)]
Fix visiting and saving writable content provider files
* java/org/gnu/emacs/EmacsService.java (checkContentUri):
Improve debug output.
* lisp/files.el (basic-save-buffer): Check whether or not file
itself exists before checking for the existence of the directory
containing it.
* src/android.c (android_open): Don't forget to set errno after
open_content_uri fails.
Po Lu [Fri, 3 Mar 2023 07:25:53 +0000 (15:25 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Fri, 3 Mar 2023 07:23:21 +0000 (15:23 +0800)]
Update Android port
* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
(onCreate): Add view tree observer.
(onGlobalLayout): Sync fullscreen state.
(syncFullscreenWith): Improve visibility flag setting.
* src/textconv.c (select_window): New function.
(textconv_query):
(restore_selected_window):
(really_commit_text):
(really_set_composing_text):
(really_set_composing_region):
(really_delete_surrounding_text):
(really_set_point_and_mark):
(get_extracted_text): Call it instead of Fselect_window
to avoid selecting the mini window if it is no longer active.
Stefan Kangas [Fri, 3 Mar 2023 05:30:12 +0000 (06:30 +0100)]
Merge from origin/emacs-29
9e105d483fa Fix c-ts-mode indentation for statement after preproc (bu...
a72a55e3e49 Fix c/c++-ts-mode's mode lighter
67befc1f5a5 Eglot: use shell-file-name in eglot--cmd (bug#61748)
1c7b2673bdd Avoid signaling errors in url-basic-auth when password is...
756225e3778 Fix wdired-tests on MS-Windows
a137f71c67e Improvements to xwidget on macOS (bug#60703)
3f43a16bc63 ; Avoid byte-compilation warning in c-ts-mode.el
Yuan Fu [Fri, 3 Mar 2023 03:59:11 +0000 (19:59 -0800)]
Fix c-ts-mode indentation for statement after preproc (bug#61893)
Originally our c-ts-mode--anchor-prev-sibling only specially handled
labeled_statements, now we add special case for preproc in the similar
fasion: instead of using the preproc directive as anchor, use the last
statement in that preproc as the anchor. Thus effectively ignore the
preproc.
There should be an accompanying test, but there are some problem in
the elif preproc directive indent so it would pass, we'll add the test
when that is fixed.
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling): Add special case for preproc
directives.
Po Lu [Fri, 3 Mar 2023 00:57:33 +0000 (08:57 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Eli Zaretskii [Thu, 2 Mar 2023 19:34:22 +0000 (21:34 +0200)]
Fix c/c++-ts-mode's mode lighter
* lisp/progmodes/c-ts-mode.el (c-ts-mode-set-modeline): Remove
trailing blank from comment-start when indicating the comment
style on the mode line.
Mattias Engdegård [Thu, 2 Mar 2023 08:56:59 +0000 (09:56 +0100)]
Fix `cond` miscompilation bug
This fixes a bug that miscompiled
(cond ... C S1...Sn)
where S1...Sn are switch clauses (that can be compiled into a switch
op) and C a non-switch clause, by tucking on an extra copy of C at the
end. This was a serious wrong-code bug when the condition of C had
side-effects; otherwise it was only a waste of time and space.
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond): Fix.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test case.
Mattias Engdegård [Wed, 1 Mar 2023 18:37:52 +0000 (19:37 +0100)]
Small unwind-protect optimisation improvement
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Use the current for-effect mode when optimising the body form,
instead of always optimising it for value.
João Távora [Thu, 2 Mar 2023 13:27:14 +0000 (13:27 +0000)]
Eglot: use shell-file-name in eglot--cmd (bug#61748)
* lisp/progmodes/eglot.el (eglot--cmd): Use shell-file-name.
Michael Albinus [Thu, 2 Mar 2023 12:54:14 +0000 (13:54 +0100)]
Tramp cleanup
* lisp/net/tramp.el (tramp-handle-unlock-file): Raise a warning
only when `create-lockfiles'.
* test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion):
Extend test.
Po Lu [Thu, 2 Mar 2023 12:45:21 +0000 (20:45 +0800)]
Merge remote-tracking branch 'origin/master' into feature/android
Po Lu [Thu, 2 Mar 2023 12:44:47 +0000 (20:44 +0800)]
Fix bootstrap failure
* lisp/man.el (Man-prefer-synchronous-call): Fix version
specification.